package com.ljx.stream.stream01;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;

/**
 * @author LJX
 * @Description: TODO
 * @Date: 2022/11/4 15:39
 * @Version 1.0
 */
public class Stream01 {
	public static void main(String[] args) {
		ArrayList<Student> arrayList = new ArrayList<>();
		arrayList.add(new Student("李吉祥",18));
		arrayList.add(new Student("李吉",28));
		arrayList.add(new Student("李吉星",18));
		arrayList.add(new Student("李吉",38));
		// 利用Stream流循环打印输出集合
//		arrayList.stream().forEach(iteam-> System.out.println(iteam));

		/**
		 * 利用Stream流筛选符合条件的结果(要有终止条件才可以而foreach和count都是可作为终止条件
		 * 【使用终止操作来产生一个结果，该操作会强制他之前的延迟操作立即执行，在这之后，该stream流就不能使用了】)
		 * 中间操作（例如filter） 在一个或多个步骤中，将初始化stream转化到另一个stream的中间操做
		 */
		arrayList.stream().filter(iteam->iteam.getName().length()>2).forEach(iteams-> System.out.println(iteams));
	}
}
@Data
@AllArgsConstructor
@NoArgsConstructor
class Student{
	private String name;
	private int age;
}